import hashlib
import time
import pandas as pd

# 输入文件名和输出哈希值的文件名
with open("data/filename.txt", "r", encoding='GBK') as f:  #打开文本
    file_name = f.read()   #读取文本
    print(file_name)
hash_file_name = 'value/data_hash.txt'

# 选择哈希算法（这里使用 SHA256 哈希算法）
hash_algorithm = hashlib.sha256

# 获取当前时间戳
timestamp = str(int(time.time()))

# 计算文件哈希值（包含当前时间戳）
with open(file_name, 'rb') as file:
    file_data = file.read()
    file_hash = hash_algorithm(file_data + timestamp.encode()).hexdigest()

# 将哈希值保存到文件中
with open(hash_file_name, 'w') as hash_file:
    hash_file.write(f'{file_hash}')

# 上述代码中，先使用文件对象的 read() 方法将文件的数据读取到内存中，并对读取后的整个数据进行哈希加密操作。
# 使用 time 模块获取当前时间戳，将其转换为字符串，并将其与文件内容拼接起来，然后再进行哈希值的计算。计算哈希值后，将哈希值和当前时间戳一起保存到哈希文件中。
# 通过调用哈希算法对象的 hexdigest() 方法，可以获取加密后的哈希值，这个哈希值是唯一的、固定长度并可以代表整个文件。
# 读取csv文件
df = pd.read_csv(file_name,encoding='gb18030')

# 按列进行划分
HS_df = df[['身份证','姓名','团体部门','工作','教育状况','婚姻状况','孩子数量']]
LS_df = df[['性别','年龄','科室名称','项目名称','小项名称','检查结果','结果说明','检验结果','单位','参考值','体检结论','平均通勤时间(min)','日常互联网使用时间(h)']]

# 保存到两个csv文件中
HS_df.to_csv('data/HS_data.csv', index=False)
LS_df.to_csv('data/LS_data.csv', index=False)
